package com.egreen.user.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.egreen.common.pojo.DTO.user.validation.ValidateCodeDTO;
import com.egreen.common.pojo.entity.user.User;
import com.egreen.common.pojo.entity.user.UserValidation;

/**
 * @Author: lyy
 * @Version: 1.0
 * @JDK-version: 1.8
 * @Date: 2022/7/21 15:56
 * @Description:
 */
public interface IUserValidationService extends IService<UserValidation> {
    /**
     * 将验证码发送到用户邮箱
     *
     * @param userID 用户id，通过该值来查找用户，在用户中查找到邮箱后发送验证邮件
     *               之后将验证码值存储到用户对象中
     * @return 发送成功返回0 找不到邮箱返回1
     */
    void sendEmail(int userID);

    /**
     * 将验证码发送到手机
     *
     * @param userId
     * @return 发送成功返回0 手机号码格式有问题返回1
     */
    void sendSms(int userId);

    /**
     * 负责校验用户验证码，给其他方法调用
     *
     * @param validateCodeDTO
     * @return 成功返回0和查找到的user对象，其余情况user对象返回空，找不到用户返回1，验证码错误返回2
     */
    User validateCode(ValidateCodeDTO validateCodeDTO);

    /**
     * 将验证码发送到用户邮箱
     *
     * @param email 要发送验证码的邮箱
     */
    void sendEmailForLogin(String email);

    /**
     * 将验证码发送到手机
     *
     * @param phone 要发送验证码的手机
     */
    void sendSmsForLogin(String phone);
}
